参考:授業で試用したプログラムコード

1.明るさセンサーに合わせて暗さの段階ごとに回転数を上げる(明るかったら反時計回り)



  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8. }
  9. void loop() {
  10.   for (int i=0; i <= 50; i++){
  11.     clockwise(5000);
  12.   }
  13.   for (int i=0; i <= 50; i++){
  14.     counter_clockwise(5000);
  15.   }
  16. }
  17. void clockwise(int delaytime){
  18.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  19.   digitalWrite(STEP, HIGH);
  20.   delayMicroseconds(delaytime);
  21.   digitalWrite(STEP, LOW);
  22.   delayMicroseconds(delaytime);
  23. }
  24. void counter_clockwise(int delaytime){
  25.   digitalWrite(DIR, LOW);//はLOWは反時計回り
  26.   digitalWrite(STEP, HIGH);
  27.   delayMicroseconds(delaytime);
  28.   digitalWrite(STEP, LOW);
  29.   delayMicroseconds(delaytime);
  30. }

2.明るさセンサーと組み合わせて暗くなるほど回転数を上げる(段階分けしない)



  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.     int val=0;
  12.   val=analogRead(1);
  13.   Serial.println(val);
  14.   delay(0);
  15.   clockwise(val*200);
  16. }
  17.   
  18. void clockwise(int delaytime){
  19.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  20.   digitalWrite(STEP, HIGH);
  21.   delayMicroseconds(delaytime);
  22.   digitalWrite(STEP, LOW);
  23.   delayMicroseconds(delaytime);
  24. }
*参考元:杉野真央さんのホームページ
(本人確認済み)